/*
 * @Author: '137' '1432417996@qq.com'
 * @Date: 2025-03-30 16:53:36
 * @LastEditors: 137 '1432417996@qq.com'
 * @LastEditTime: 2025-05-15 19:26:01
 * @FilePath: \starter-3\nuxt.config.ts
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */
// https://nuxt.com/docs/api/configuration/nuxt-config
export default defineNuxtConfig({
  modules: [
    '@nuxtjs/tailwindcss', 
    '@pinia/nuxt',
    '@nuxtjs/sitemap',
    ['@element-plus/nuxt', {
      importStyle: 'scss',
      // locale: 'zh-cn'
    }]
  ],
  app:{
    head: {
      title: "贸行四海",
      charset: "utf-8",
      viewport: "width=device-width, initial-scale=1",
    },
  },
  runtimeConfig: {
    // apiSecret 只能在服务器端上访问
    apiSecret: '123',
    // public 命名空间中定义的，在服务器端和客户端都可以普遍访问
    public: {
      apiBase: process.env.NUXT_PUBLIC_API_BASE || 'https://zlz137.com/api/',
      apiBaseSsr: process.env.NUXT_PUBLIC_API_BASE_SSR || ''
    }
  },
  features:{
    devLogs:true
  },
  compatibilityDate: '2024-11-01',
  devtools: { enabled: true },
  debug: true,
  // 开发服务器配置
  devServer: {
    port: 6589, // 自定义端口号
  },
  // 启用 SSG
  ssr: true,
  nitro: {
    // 生产服务器配置
    serveStatic: true,
    devServer: {
      // 开发环境端口 (npm run dev)
      port: 6589
    },
    server: {
      // 生产环境端口（打包后使用）
      port: 6589
    },
    port: process.env.NODE_ENV === 'production' ? 6589 : 3000,

  },
  experimental: {
    payloadExtraction: false  // 禁用 payload 提取
  },
  build: {
    transpile: ['jsencrypt'], // 强制 Babel 转译此依赖
    analyze: true,
  },
  css: [
    '@/assets/style/base.scss',
    '@/assets/style/homePage.scss',
  ],
  vite:{
    build: {
      minify: 'terser', // 启用 Terser 压缩
      terserOptions: {
        compress: {
          drop_console: true, // 移除 console.log
          drop_debugger: true // 移除 debugger
        }
      },
      rollupOptions: {
        output: {
          manualChunks: (id) => {
            // 将 node_modules 中的大依赖单独打包
            if (id.includes('node_modules')) {
              if (id.includes('lodash')) {
                return 'vendor-lodash'
              }
              if (id.includes('axios')) {
                return 'vendor-axios'
              }
              return 'vendor' // 其他依赖合并到 vendor
            }
          }
        }
      }
    },
    plugins: [],
    css: {
      // style 预处理器配置选项
      preprocessorOptions: {
        // sass 预处理器
        scss: {
          // additionalData: `@import "用于声明全局 sass 变量的文件的路径";`
          // additionalData: `@import "./assets/style/base.scss";`,
          // additionalData: '@use "~/assets/style/base.scss" as *;'
        },
      },
    },
  },
  sitemap: {
    hostname: process.env.NUXT_PUBLIC_SITE_URL || 'https://your-domain.com',
    gzip: true,
    exclude: [
      '/admin/**',
      '/api/**',
      '/private/**',
      '/user/**',
      '/callback/**',
    ],
    defaults: {
      changefreq: 'daily',
      priority: 0.8,
      lastmod: new Date().toISOString()
    }
  },
})
